package com.broada.apm.dao;

import java.util.List;

import com.broada.apm.model.PagingList;
import com.broada.apm.model.User;
import com.broada.apm.model.UserToken;

public interface UserDao {

	/**
	 * 添加用户
	 * @param user
	 */
	public void addUser(User user);
	
	/**
	 * 修改用户密码
	 * @param password
	 */
	public void updateUserPassword(String id, String password);
	
	/**
	 * 修改用户名和角色
	 * @param name
	 * @param role
	 */
	public void updateUserNameAndRole(String id, String name, int role);
	
	/**
	 * 用户状态 0：启用 1：禁用
	 * @param status
	 */
	public void updateUserStatus(String id, int status);
	
	/**
	 * 删除用户
	 * @param user
	 */
	public void deleteUser(User user);
	
	/**
	 * 查询所有用户
	 * @return
	 */
//	public List<User> getAllUsers();
	
	/**
	 * 根据用户id查询
	 * @param userId
	 * @return
	 */
	public User getUserById(String userId);

	/**
	 * 分页查询用户信息
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	public PagingList<User> getPagingUser(int pageIndex, int pageSize);

	/**
	 * 根据账号查询用户
	 * @param account
	 * @return
	 */
	public User getUserByAccount(String account);

	public void deleteUserToken(String key);

	public UserToken getUserToken(String key);

	public List<UserToken> getAllUserTokens();

	public void addUserToken(UserToken userToken);
}
